#!user/bin/env python3
# -- coding: utf-8 --
# 【json模块】
"""
很多程序都要求用户输入某种信息，程序都把用户提供的信息存储到列表和字典等数据结构中。我们想让这种数据被大多数编程语言所识别，可以使用模块json来存储数据。
(1) json.dump(要存储的数据，用于存储数据的文件对象 )  存储数据到json格式的文件
(2) json.load(用于存储数据的文件对象 )  从json格式的文件读取到内存
注：JSON格式最初是JavaScript开发的，但随后成了一种常见格式，被包括Python在内的众多语言采用。
"""
import json

list1 = [1, 2, 3, 5, 6, 8]
with open('data.csv', 'w') as file:
    json.dump(list1, file)
with open('data.csv') as file:
    file = json.load(file)
print(file)
print(''.center(30, '='))

# 保存和读取用户生成的数据：
# game_name=input('请输入您的昵称：')
# with open('data.csv','w') as file:
#     json.dump(game_name,file)
#     print(f'{game_name}主人，您回来时我会记得您！')

# with open('data.csv') as file:
#     game_name = json.load(file)
#     print(f'{game_name}主人，欢迎您回来！')

print(''.center(30, '='))

# 【将上面两段代码重构】重构：将每一个功能放到一个单独的函数里
try:
    with open('data.text', 'r') as file:  #
        game_name = json.load(file)
except Exception:
    game_name = input('请输入您的昵称：')
    with open('data.text', 'w') as file:
        json.dump(game_name, file, ensure_ascii=False)
        print(f'{game_name},您回来，我会记得您')
else:
    print(f'欢迎{game_name}回来！')
"""我们尝试打开一个文件名为data.text的文件，如果有这个文件，我们就将其用户名读取到内存中，再执行下方else代码块。"""
"""用户首次运行这个程序时，文件data.text不存在，将引发异常，引发的是FileNotFoundError异常，但是我用Exception意思是只要出错就执行下面代码,让用户输入用户名，再用json.dump存储用户名并打印"""
print(''.center(30, '='))
